SI
action

Script básico passar por cima de objeto e ser teleportado

Por SirUndead, 31 de ago. de 2015 em Scripts

16
2.1k
SirUndeadS
31 de agosto de 2015 às 18:22

Sei que não tem haver com a área mas não achei outro modo de postar.
Preciso de um action que quando passa por cima de um portalzonho de choque que existe com ID 11759, ele te teleporta pra algum lugar. Esse lugar eu posso determinar. Coloquei action ID 5885 nele.

É simples e básico, alguém poderia me ajudar?

MudrockM
31 de agosto de 2015 às 18:38

Crie um arquivo chamado itemtp.lua

local pos = {x=33077, y=31219, z=8} -- Posição para onde sera teleportado

function onStepIn(cid, item, pos)
    doTeleportThing(cid, pos)
    doPlayerSendTextMessage(cid, 27, "Você foi teleportado!")
  return true
end

e também

<movevent type="StepIn" actionid="5885" event="script" value="itemtp.lua"/>
SirUndeadS
31 de agosto de 2015 às 19:38

Comecei a mexer com script agora, e é fácil entender tudo. Meu pensamento foi praticamente igualzinho o seu.
Mas não funcionou, ele chega a mandar a mensagem mas não teleporta.

SkyLighS
31 de agosto de 2015 às 19:47
Melhor resposta
function onStepIn(cid, item, position, lastPosition, fromPosition)

local pos = {x=129, y=54, z=6}  -- pos


if doTeleportThing(cid, pos) then
doPlayerSendTextMessage(cid, 22, "Você foi teleportado!")
end
return true
end

moveevents.xml

        <movevent type="StepIn" uniqueid="1234" event="script" value="ARQUIVO.lua"/>

utilize uniqueid

MudrockM
31 de agosto de 2015 às 19:49
function onStepIn(cid, item, position, lastPosition, fromPosition)

local pos = {x=129, y=54, z=6}  -- pos


if doTeleportThing(cid, pos) then
doPlayerSendTextMessage(cid, 22, "Você foi teleportado!")
end
return true
end

moveevents.xml

        <movevent type="StepIn" uniqueid="1234" event="script" value="ARQUIVO.lua"/>

utilize uniqueid

 

 

Obrigado por lembrar do uniqueid kkkkkk <3

SirUndeadS
31 de agosto de 2015 às 20:14

Muito obrigado.

SkyLighS
31 de agosto de 2015 às 20:30

Movido para resolvidos


Tópico Movido
Este tópico foi movido de "OTServSuporteSuporte Scripting"
para "OTServSuporteSuporte ScriptingPedidos e dúvidas resolvidos - Scripting".

 

 

jvcasarinJ
31 de agosto de 2015 às 22:57

Creio eu que não seja necessária a checagem com o "if" simplificando bem pouco do script, mas simplificando

 

 

function onStepIn(cid, item, position, lastPosition, fromPosition)

local pos = {x=129, y=54, z=6} -- pos


doTeleportThing(cid, pos)
doPlayerSendTextMessage(cid, 22, "Você foi teleportado!")
end
return true
end

 

 

Mas ja ta ótimo ne xD

MudrockM
31 de agosto de 2015 às 23:35

Creio eu que não seja necessária a checagem com o "if" simplificando bem pouco do script, mas simplificando

function onStepIn(cid, item, position, lastPosition, fromPosition)

local pos = {x=129, y=54, z=6} -- pos


doTeleportThing(cid, pos)
doPlayerSendTextMessage(cid, 22, "Você foi teleportado!")
end
return true
end

Mas ja ta ótimo ne xD

 

é somente um Script básico de teleport field.. rsrsr

jvcasarinJ
31 de agosto de 2015 às 23:49

 

é somente um Script básico de teleport field.. rsrsr

 

 

uahsuas, tipo, to iniciando agora em LUA, tipo, AGORA MESMO.

 

 

funcionaria ne?

MudrockM
31 de agosto de 2015 às 23:50

 

 

uahsuas, tipo, to iniciando agora em LUA, tipo, AGORA MESMO.

 

 

funcionaria ne?

 

Não porque voce colocou um end sem iniciar um IF rsrsr

jvcasarinJ
01 de setembro de 2015 às 00:11

 

Não porque voce colocou um end sem iniciar um IF rsrsr

 

 

 

Poha.. vdd uashausas, esqueci do end.... vlw, então iria funcionar sem esse end ne?

LumusL
01 de setembro de 2015 às 00:27

Creio eu que não seja necessária a checagem com o "if" simplificando bem pouco do script, mas simplificando

function onStepIn(cid, item, position, lastPosition, fromPosition)

local pos = {x=129, y=54, z=6} -- pos


doTeleportThing(cid, pos)
doPlayerSendTextMessage(cid, 22, "Você foi teleportado!")
end
return true
end

Mas ja ta ótimo ne xD

Neste caso é sim... porque pode ocorrer algum erro de não teleportar ele e ficar mandando a msg no tempo sem ter teleportado.

jvcasarinJ
01 de setembro de 2015 às 00:29

Eh bem raro dar esse tipo de erro ne?

LumusL
01 de setembro de 2015 às 00:46

Eh bem raro dar esse tipo de erro ne?

Pode ser que você configure uma pos inexistente... ai manda a msg pro player sem teleportar ele... por isso tem que passar na checagem do if...

if doTeleportThing(cid, pos) then
doPlayerSendTextMessage(cid, "teleportou".)
end

se Teleportar o jogador para a posição então
envie a mensagem "teleportou"
fim